# -*- coding: utf-8 -*-  
from core.flickr import FlickrOauth
from core.caches import Cache
from core.sessions import Session
import web

class FlickrOauthService(object):
    """FlickrOauthService服务"""
    @staticmethod
    def GetFlickrOauth():
        try:
            flickrOauth=Session('flickrOauth').get()
            if flickrOauth!=None:
                return flickrOauth
            else:           
                flickrOauth=FlickrOauth()
                Session('flickrOauth').set(flickrOauth)
                return flickrOauth
        except:
            flickrOauth=FlickrOauth()
            Session('flickrOauth').set(flickrOauth)
            return flickrOauth
    @staticmethod
    def IsAuthenticated():
        try:
            return Session('flickrOauth').get()!=None
        except:
            return False 
    @staticmethod
    def AuthWithFrob(verifier):
        flickrOauth=FlickrOauthService.GetFlickrOauth()
        flickrOauth.authorizeByVerifier(verifier)
        Session('flickrOauth').set(flickrOauth)
        #Cache('flickrOauth').set(flickrOauth)
    @staticmethod
    def CancelAuth():
        Session('flickrOauth').delete()
        #Cache('flickrOauth').delete()
    @staticmethod
    def GetLoginURL():
        flickrOauth=FlickrOauthService.GetFlickrOauth()
        url=flickrOauth.getAuthorizeURL(web.ctx.homedomain)
        return url